10 DIMG(60),C(60):Z=0:X=0 11 DF=0: REM IS DATA PRESENT? 15 POKE53280,6:POKE53281,3:PRINTCHR$(147):POKE646,0 20 CO=7:RO=4:GOSUB790:PRINT"*** COM 64 GRAPHER MENU ***" 25 PRINT:PRINT:PRINTTAB(11)CHR$(18)"S"CHR$(146)"TART NEW GRAPH FILE" 30 PRINT:PRINTTAB(11)CHR$(18)"R"CHR$(146)"EAD FILE FROM DISC" 35 PRINT:PRINTTAB(11)CHR$(18)"W"CHR$(146)"RITE FILE TO DISK" 40 PRINT:PRINTTAB(11)CHR$(18)"A"CHR$(146)"DD TO EXISTING DATA" 45 PRINT:PRINTTAB(11)CHR$(18)"C"CHR$(146)"HANGE PRIOR ENTRY" 50 PRINT:PRINTTAB(11)CHR$(18)"F"CHR$(146)"ORMAT CHANGE" 55 PRINT:PRINTTAB(11)CHR$(18)"L"CHR$(146)"IST CURRENT DATA" 60 PRINT:PRINTTAB(11)CHR$(18)"G"CHR$(146)"RAPH DATA" 62 PRINT:PRINTTAB(11)CHR$(18)"Q"CHR$(146)"UIT" 65 GETA$:IFA$=""THEN65 66 IFA$="Q"THEN63000 70 IFA$="S"THENZ=O:CC=1:GOTO115 75 IFA$="R"THENGOSUB520:GOTO15 80 IFA$="A"THENIFDF<>0THEN PRINTCHR$(147):N=E:CC=C(N-1)+1:GOTO176 82 IFA$="A"THENGOSUB60000:GOTO15 85 IFA$="W"THENGOSUB445:GOTO15 90 IFA$="L"THENGOSUB615:ZZ=E-1:GOTO15 95 IFA$="C"THENIFDF<>0THEN705 96 IFA$="C"THENGOSUB60000:GOTO15 100 IFA$="G"THEN245 105 IFA$="F"THENGOSUB755:GOTO15 110 GOTO15 115 IFX>0THEN65 117 DF=1 120 PRINTCHR$(147):CO=2:RO=1:GOSUB790 122 PRINT"NAME OF GRAPH: ";:GOSUB950:T$=B$ 125 PRINT:PRINTTAB(2)"MINIMUM VALUE FOR BOTTOM AXIS: ";:U=1:GOSUB950:B=VAL(B$) 130 PRINT:PRINTTAB(2)"VALUE OF VERTICAL INTERVAL: ";:U=1:GOSUB950 132 S=VAL(B$) 135 PRINT:PRINTTAB(2)"NAME OF BOTTOM AXIS: ";:GOSUB950:X$=B$ 140 PRINT:PRINTTAB(2)CHR$(156)"ALL BARS THE SAME COLOR - PRESS 'A'" 145 PRINT:PRINTTAB(2)"DIFFERENT COLORED BARS - PRESS 'B'" 150 GET A$:IFA$=""THEN150 155 IFA$="A"THENZ=1:FORV=1TO60:C(V)=2:NEXT:GOTO170 160 IFA$="B"THEN170 165 GOTO150 170 N=1:PRINT:PRINTTAB(2)CHR$(30)"INPUT UP TO 60 VALUES" 175 PRINT:PRINTTAB(2)"TYPE '-1' TO END INPUT" 176 CO=2:RO=17:GOSUB790 177 IFDF=0THENGOSUB60000:GOTO15 178 PRINTCHR$(28)"RANGE OF GRAPH IS"B"TO"B+5*S;CHR$(144) 180 CO=2:RO=20:GOSUB790 182 PRINT"VALUE TO BE GRAPHED,BAR #";N;" "; 185 CO=32:RO=20:GOSUB790:U=1:GOSUB950:G(N)=VAL(B$) 190 GN=G(N) 192 IFGN<>-1ANDGNB+5*STHENCO=2:R0=20:GOSUB790:GOSUB780:GOTO180 195 IFGN=-1THENW=0:E=N:GOTO15 200 IFZ=1THENC(N)=2 205 IFZ=1ANDN=60THENW=0:GOTO15 210 IFGNB+5*STHEN180 215 IFZ=1THENN=N+1:GOTO180 220 IFCC=11THENCC=1 225 C(N)=CC 230 CC=CC+1 235 IFN=60THEN15 240 N=N+1:GOTO180 245 IFDF=0THENGOSUB60000:GOTO15 246 FL=0:FORCK=0TOE:IFG(CK)>B+5*STHENFL=1 247 NEXTCK 248 IFFL=1THENGOSUB61000 249 W=0:POKE53280,0:POKE53281,0:POKE646,5 250 PRINTCHR$(147)TAB(8+(32-INT(LEN(T$)))/2)T$ 255 FORP=1TO20:CO=1:RO=P:GOSUB790 260 PRINTTAB(7)"[180] [167]":NEXT 265 CO=1:RO=21:GOSUB790:PRINTB;TAB(7)"[204][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][186]" 270 FORP=1TO4:CO=1:RO=21-4*P:GOSUB790 275 PRINTB+P*S;TAB(7)"[204][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][186]" 280 NEXT 285 CO=1:RO=1:GOSUB790 290 PRINTB+5*S;TAB(7)"[175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175]" 295 IFW<>0THEN305 300 X=1 305 IFG(X)=-1THENC(X)=2:GOTO355 310 Y=INT(4*(G(X)-B)/S) 315 LS=1871:LC=56143 316 FORR=0TO(Y-1) 317 L1=LS+2*(X-15*W)-40*R 318 L2=LC+2*(X-15*W)-40*R 319 IFL1<1064THENR=Y-1:GOTO325 320 POKEL1,160:POKEL2,C(X) 325 NEXTR 330 IFX=15THEN355 335 IFX=30THEN355 340 IFX=45THEN355 345 IFX=60THEN355 350 X=X+1:GOTO305 355 CO=(40-LEN(X$))/2:RO=23:GOSUB790:PRINTX$; 360 IFW<>0THENGOSUB415:GOTO375 365 CO=9:ROW=22:GOSUB790:PRINT"1 2 3 4 5 6 7 8 9 1 1 1 1 1 1"; 370 CO=27:RO=23:GOSUB790:PRINT"0 1 2 3 4 5";:PRINTCHR$(158); 375 CO=0:RO=24:GOSUB790:PRINT"PRESS:'P' TO PRINT - ANY KEY TO GO ON"; 380 GET A$:IF A$=""THEN380 385 IFA$="P"THENGOSUB815 390 IFX=15ANDXHHTHENHH=G(I) 645 PRINTTAB(2)X$;I;TAB(30-LEN(STR$(INT(G(I)))))G(I) 650 IFI=15ORI=30ORI=45THENH=1:FF=0:GOTO680 655 NEXT 660 PRINT:PRINT"END OF FILE" 665 PRINT:PRINT"HIGH VALUE WAS "HH 670 PRINT"LOW VALUE WAS "LL 675 PRINT"AVERAGE VALUE= ";INT((100*TT/(E-1))+.5)/100:FF=1 680 CO=12:RO=24:GOSUB790:PRINT"PRESS ANY KEY"; 685 GETA$:IFA$=""THEN685 690 IFFF=1THEN15 695 IFI=ZANDI=15ORI=ZANDI=30ORI=ZANDI=45THENCO=0:RO=16:GOSUB790:GOTO660 700 GOTO620 705 REM-CHANGE PRIOR ENTRY 710 PRINTCHR$(147):PRINT 715 PRINTTAB(2)"WHICH ENTRY #: ";:U=1:GOSUB950:D=VAL(B$) 720 PRINT:PRINTTAB(2)"ENTRY # ";D;" IS NOW"G(D) 725 PRINT:PRINTTAB(2)"ENTER NEW VALUE: ";:U=1:GOSUB950:G(D)=VAL(B$) 730 PRINT:PRINTTAB(2)"ENTRY #"D"IS NOW"G(D) 735 PRINT:PRINTTAB(2)"COLOR IS NOW KEY #"C(D) 740 PRINT:PRINTTAB(2)"ENTER NEW COLOR KEY #: ";:U=1:GOSUB950:C(D)=VAL(B$) 745 FORT=1TO1000:NEXT 750 GOTO15 755 REM FORMAT CHANGE 760 PRINTCHR$(147):CO=2:RO=6:GOSUB790 762 PRINTTAB(2)"VALUE OF BOTTOM AXIS IS ";B 765 PRINT:PRINTTAB(2)"ENTER NEW VALUE: ";:U=1:GOSUB950:B=VAL(B$) 770 PRINT:PRINTTAB(2)"VALUE OF VERTICAL INTERVAL IS ";S 775 PRINT:PRINTTAB(2)"ENTER NEW VALUE: ";:U=1:GOSUB950:S=VAL(B$):RETURN 780 PRINT" " 785 CO=2:RO=20:GOSUB790:PRINT"BAD ENTRY":FORT=1TO1000:NEXT:RETURN 790 REM CURSOR POSITIONING SUB-ROUTINE 795 PRINTCHR$(19) 800 IFRO<>0THENPOKE214,RO-1:PRINT 805 POKE211,CO 810 RETURN 815 REM SCREEN COPY 820 SI$=CHR$(15):BS$=CHR$(8):PO$=CHR$(16) 825 RV$=CHR$(18):RO$=CHR$(146):QT$=CHR$(34) 830 MF$=CHR$(145):VR=PEEK(648)*256 835 OPEN4,4:PRINT#4 840 FORCL=0TO23:QF=0:AS$=MF$:FORRO=0TO39 845 SC=PEEK(VR+40*CL+RO) 850 IFSC=34THENQF=1-QF 855 IFSC<>162THEN870 860 QF=1-QF:IFQF=1THENAS$=AS$+RV$+QT$:GOTO900 865 AS$=AS$+QT$+RO$:GOTO900 870 IFQF=1AND(SC>=128)THENSC=SC-128:GOTO880 875 IFSC>128THENSC=SC-128:RF=1:AS$=AS$+RV$ 880 IFSC<32ORSC>95THENAS=SC+64:GOTO895 885 IFSC>31ANDSC<64THENAS=SC:GOTO895 890 IFSC>63ANDSC<96THENAS=SC+32:GOTO895 895 AS$=AS$+CHR$(AS) 900 IFRF=1THENAS$=AS$+RO$:RF=0 905 NEXTRO 910 IFQF=0THENPRINT#4,SI$PO$"20"AS$BS$:GOTO920 915 PRINT#4,SI$+PO$+"20"+AS$+QT$BS$ 920 NEXTCL:PRINT#4,SI$:CLOSE4:RETURN 950 REM INPUT SUBROUTINE 955 CB=0:Q=18:B$="":A$="" 960 GETA$:IFA$=CHR$(13)THEN975 965 Q=164-Q 970 PRINTCHR$(Q)CHR$(32)CHR$(146)CHR$(157); 975 IFB$=""ANDA$=CHR$(13)THEN960:REM PREVENTS ENTERING NULL 980 IFB$=""ANDA$=CHR$(20)THEN960:REM NO DELETE IF NO LETTERS ARE PRESENT 985 IFA$=CHR$(17)ORA$=CHR$(29)ORA$=CHR$(145)ORA$=CHR$(157)THEN960 990 IFA$=":"ORA$=","ORA$>CHR$(127)ORA$=CHR$(19)THEN960 995 IFA$=CHR$(13)THENPRINTCHR$(32):U=0:RETURN 1000 IFU=1THEN1024 1005 PRINTA$;:B$=B$+A$ 1010 L=LEN(B$) 1015 IFA$=CHR$(20)THENB$=LEFT$(B$,L-2) 1020 GOTO960 1024 IFA$=""THEN960 1025 IFA$=CHR$(13)ANDB$<>""THENPRINTCHR$(32):U=0:RETURN 1030 IFA$<>CHR$(20)ANDASC(A$)<45ORASC(A$)>57ORA$>CHR$(127)THEN960 1035 GOTO1005 60000 PRINT"[147]SORRY...THIS FUNCTION CAN NOT BE USED" 60002 PRINT"BECAUSE THERE IS NO DATA ENTERED." 60004 FORDL=1TO2000:NEXTDL:RETURN 61000 PRINT"[147]SOME OF YOUR DATA IS OUT OF RANGE..." 61010 PRINT"ANY COLUMN THAT GOES ABOVE THE TOP OF" 61020 PRINT"THE GRAPH IS OUT OF RANGE." 61030 PRINT"PRESS A KEY TO CONTINUE." 61040 POKE198,0:WAIT198,1:GETC$:RETURN 63000 REM CONNECT TO LS 63010 LOAD"PAYLOAD CONNECT",8:END